Architettare per la concorrenza in Elixir va oltre lo spawn semplice di processi; richiede un approccio rigoroso per raggiungere affidabilità al 99,9999999% (nove nove). Ciò corrisponde a circa 1 secondo di interruzione ogni 30 anni. Per raggiungere questo standard, utilizziamo il Framework delle Cinque Domande.
L'euristica strutturale
Prima di scrivere una sola riga di codice OTP, utilizza queste domande per scomporre i problemi con stato in primitive gestibili:
- Ambiente e vincoli: È un singolo nodo? Un cluster globale? Quali sono i limiti di memoria/IO?
- Punti focali: Dove risiedono i dati? Chi "possiede" lo stato (ad esempio, un registro dei risultati)?
- Caratteristiche di runtime: Quante richieste concorrenti? Sono legate alla CPU o all'IO?
- Protezione: Quale stato deve sopravvivere? Cosa possiamo permetterci di perdere e riavviare?
- Avvio: Come inizializziamo l'albero? Quali servizi dipendono da altri?
Trattando queste domande come vincoli, eviti la concorrenza del "grande ammasso informe", in cui ogni processo si scambia messaggi con ogni altro senza gerarchie chiare.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>